package com.we.dao;

import com.we.entity.Note;
import com.we.entity.Tag;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * @Description tag表操作dao
 * @Author cr7
 * @Date 19:40
 * @Version V1.0
 */
public interface TagDao {

    /**
     * 查询所有标签数量
     * @return
     */
    int findTagCount();

    /**
     * 分页查询标签及其数量
     * @param start
     * @param pageSize
     * @return
     */
    List findAllTagByPage(@Param("start") int start, @Param("pageSize") int pageSize);

    /**
     * 根据标签名查询标签信息
     * @param tagName
     * @return
     */
    int findTagByTagName(String tagName);

    /**
     * 添加标签
     * @param tagName
     * @return
     */
    int addTag(String tagName);

    /**
     * 根据标签名删除标签
     * @param tagName
     * @return
     */
    int deleteTagByTagName(String tagName);

    /**
     * 添加笔记标签功能
     * @param tagName
     * @param noteID
     */
    void saveTag(@Param("tagName") String tagName, @Param("noteID") int noteID);

    /**
     * 根据笔记id查询标签
     * @param noteID
     * @return
     */
    List<Tag> findTagById(int noteID);

    /**
     * 根据标签名修改标签名称
     * @param tagName
     * @return
     */
    int updateTagName(@Param("tagName") String tagName,@Param("tagName1") String tagName1);

    /**
     * 查询所有标签及其项目功能
     * @return
     */
    List findAllTag();

    /**
     * 查询标签对应的博客信息
     * @param tagName
     * @param start
     * @param pageSize
     * @return
     */
    List<Note> findNoteByTag(@Param("tagName") String tagName, @Param("start") int start, @Param("pageSize") int pageSize);

    /**
     * 查询标签下的笔记数量
     * @param tagName
     * @return
     */
    int findNoteByTagCount(String tagName);
}
